|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 29.06.2016, 12:44 Titel: Files herunterladen |
|
|
Hallo liebe Internet - Experten!
Wenn ich in meinen Programmen irgend etwas im HTTP - Format brauche, verwende ich zum Herunterladen die Funktionen aus Websites selbst verarbeiten.
Mit html - Text funktioniert das auch ganz wunderbar, wenn ich allerdings versuche, eine Datei herunterzuladen, etwa http://videos.classic-car.tv/Wellenlager_SD.mp4
bekomme ich einen String mit dem Inhalt
Zitat: | HTTP/1.1 200 OK
Date: Sun, 26 Jun 2016 07:22:10 GMT
Server: Apache
Last-Modified: Wed, 03 Jul 2013 22:00:00 GMT
ETag: "1a2b0d-8f532d-4e0a2953d7800"
Accept-Ranges: bytes
Content-Length: 9392941
Connection: close
Content-Type: video/mp4 | gefolgt von knapp 253 kB Daten, in denen ich nichts erkennen kann. Die angegebene Filegröße stimmt jedenfalls.
Wie bringe ich den Server dazu, mir die gewünschte Datei zu schicken? Sowohl mit libvlc als auch mit libcurl hat der Download schon geklappt, aber ich würde gerne auf die zusätzlichen dlls verzichten.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 29.06.2016, 15:11 Titel: |
|
|
Die gewünschte Datei sollte dir eigentlich mit den 253kB Daten bereits geschickt worden sein. Was passiert, wenn du diese Daten in eine neue Datei "Wellenlager_SD.mp4" speicherst? Laut dem, was ich vor einem paar Jahren in meinem Buch geschrieben habe, sollte das funktionieren ... _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 29.06.2016, 22:39 Titel: |
|
|
Zitat: | gefolgt von knapp 253 kB Daten, in denen ich nichts erkennen kann. Die angegebene Filegröße stimmt jedenfalls.
| Das ist für eine MP4-Datei relativ normal. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 30.06.2016, 02:38 Titel: |
|
|
Ich fürchte, da habe ich mich etwas missverständlich ausgedrückt. Die richtige, komplette, abspielbare mp4 - Datei, die ich mit libvlc und libcurl schon erfolgreich heruntergeladen habe, ist 9392941 Bytes groß, so wie es auch im Header angezeigt wird.
Ich habe auch beide Dateien in einen Hex - Editor geladen und nach gemeinsamen Mustern gesucht, aber keine Übereinstimmung gefunden, und auch der VLC - Player kann mit den 253 kB Daten nichts anfangen.
@nemored: Ich nehme an, du meinst "2D Spieleprogrammierung", Kapitel 13. Auf den ersten Blick scheint es genau das gleiche zu sein, was ich auch versucht habe, aber ich werde es mir noch einmal genauer ansehen.
Falls mich das nicht weiterbringen sollte: Wie kann ich mich in die Ausgabe von libvlc oder libcurl einklinken um zu protokollieren, was diese an den Server schicken, um die Datei anzufordern?
Gruß
grindstone
EDIT:
Ich habe den Fehler gefunden. In der httpget werden die empfangenen Daten in einen ZString gepuffert. Das ist bei Texten kein Problem, aber bei einem beliebigen Datenstrom, in dem auch 0 - Bytes auftauchen...
Also habe ich den ZString durch einen allozierten Speicherbereich ersetzt, dessen Inhalt ich nach jedem Schleifendurchlauf an den Ausgabestring anhänge und siehe: es funktioniert (zumindest im Prinzip). Jetzt muß ich nur noch den Header entfernen und den Code ein bisschen aufräumen...
Aber nicht jetzt, ich habe schon ganz eckige Augen. _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 30.06.2016, 12:43 Titel: |
|
|
Das geht auch ohne lib (SNC englisches Forum) !
micha
Code: | ' [S]imple [N]etwork [C]onnection
#include once "snc.bi"
#include once "snc_utility.bi"
' test of a client connection
const as string ServerName = "videos.classic-car.tv"
const as string ServerPath = "/"
const as string ServerFile = "Wellenlager_SD.mp4"
const as string FileType = "video/mp4"
' connect to web server at port 80
dim as NetworkClient client=type(ServerName,80)
' get a connection from ConnectionFactory
var connection = client.GetConnection()
' build an HTTP GET request
dim as string request = HTTPGet(ServerName,ServerPath & ServerFile,FileType)
' ready to send ?
while connection->CanPut()<>1 : sleep 100 : wend
' put data on the connection
connection->PutData(strptr(request),len(request))
' ready to receive ?
while connection->CanGet()<>1 : sleep 100 : wend
print "please wait receive ~9MB data ..."
dim as zstring ptr buffer
var nBytes = connection->GetData(buffer)
print "number of received bytes " & nBytes
' get last char position of the HTTP asci header
var LastChar=instr(*buffer,HeaderEnd)-1
var Header =left(*buffer,LastChar)
' is it a OK answer ?
if instr(Header,"200 OK")<1 then
print "can't get " & ServerName & ServerPath & ServerFile & " !"
beep:sleep:end
end if
' get first byte behind the HTTP header
var DataStart=LastChar+4
' save it
open ServerFile for binary access write as #1
dim as ubyte ptr FileBuffer=@buffer[DataStart]
nBytes-=DataStart
put #1,,*FileBuffer,nBytes
close #1
print "file saved ..."
' free the buffer (allocate by snc.bi)
deallocate buffer
sleep |
|
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 01.07.2016, 02:12 Titel: |
|
|
Hallo micha!
Danke für den Codeschnipsel. Leider kann ich ihn im Augenblick nicht ausprobieren, da ich die snc.bi nicht hierhabe und freebasic.net momentan nicht erreichbar ist. Ich werde das später nochmal probieren.
Ich arbeite gerade an der Headererkennung ("Ja oder nein und wenn ja, was will uns der Server damit sagen?"), da nehme ich deine Überprüfung des Statuscodes gerne als Anregung.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 01.07.2016, 13:04 Titel: Re: Files herunterladen |
|
|
grindstone hat Folgendes geschrieben: | mit libcurl hat der Download schon geklappt, aber ich würde gerne auf die zusätzlichen dlls verzichten. |
grindstone hat Folgendes geschrieben: | arbeite gerade an der Headererkennung ("Ja oder nein und wenn ja, was will uns der Server damit sagen?") |
Übrigens, das wird spätestens dann spaßig, wenn der Website-Betreiber mal auf https umstellt.
Wenn die Software nur unter Windows funktionieren muss, kann man ja auch das WinAPI für HTTP(S)-Downloads benutzen und muss nicht von der Transportschicht aus einen eigenen HTTP-Client implementieren. Dann braucht man auch keine zusätzlichen DLLs. _________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 01.07.2016, 13:20 Titel: |
|
|
So, ich habe den Code jetzt so modifiziert, daß er mit beliebigen Daten klarkommt.
Als Empfangspuffer kann man ohne weiteres einen ZString verwenden, die Daten werden dort komplett 1:1 hineingeschrieben. Nur wenn man ihn dann als String weiterverwendet, ist beim erste 0 - Byte Schluss. Dieses Problem kann man umgehen, indem man einen "normalen" String entsprechender Länge erzeugt und den Inhalt dort hineinkopiert.
Außerdem habe ich die Subs noch um die Möglichkeit einer optionalen Callback - Routine erweitert, mit der eine Fortschrittsanzeige und eine Abbruchabfrage realisiert werden kann.
Wenn einer von euch so nett wäre, das Ganze auch unter Linux zu testen...
HTTP.bi Code: | #Ifdef __FB_WIN32__
#Include Once "win/winsock2.bi"
#Else
#Include Once "crt/netdb.bi"
#Include Once "crt/sys/socket.bi"
#Include Once "crt/netinet/in.bi"
#Include Once "crt/arpa/inet.bi"
#Include Once "crt/unistd.bi"
#EndIf
#Ifndef recvbufflen
#define RECVBUFFLEN 16384
#EndIf
#Ifndef newline
#define newline Chr(13,10)
#EndIf
Sub InitWinsock Constructor
#Ifdef __FB_WIN32__
'' init winsock
Dim wsaData As WSAData
If( WSAStartup( MAKEWORD( 1, 1 ), @wsaData ) <> 0 ) Then
Print "Error: WSAStartup failed"
End 1
End If
#EndIf
End Sub
Sub ExitWinsock Destructor
#Ifdef __FB_WIN32__
WSACleanup
#EndIf
End Sub
Function httpget(server As String, path As String, hadd As String = "", callback As Any Ptr = 0) As String
Dim IP As Integer
Dim ia As in_addr
Dim s As SOCKET
Dim hostentry As hostent Ptr
Dim sendbuffer As String
Dim recvbuffer As ZString * RECVBUFFLEN+1
Dim bufstr As String
Dim bytes As Integer
Dim sa As sockaddr_in
Dim in As String
Dim As Integer totlen, cpos, headerlen
Dim As String ctype
'optionale callbackroutine zur fortschrittsanzeige
Dim cb As Function (totlen As Integer, heruntergeladen As Integer) As Integer
ia.S_addr = inet_addr( server )
If ( ia.S_addr = INADDR_NONE ) Then
hostentry = gethostbyname( server )
If ( hostentry = 0 ) Then
Return "Error: IP couldn't be resolved!"
End If
IP = *Cast( Integer Ptr, *hostentry->h_addr_list )
Else
IP = ia.S_addr
End If
s = OpenSocket( AF_INET, SOCK_STREAM, IPPROTO_TCP )
If( s = 0 ) Then
Return "Error: Socket couldn't be opened."
End If
sa.sin_port = htons( 80 )
sa.sin_family = AF_INET
sa.sin_addr.S_addr = ip
If ( connect( s, Cast( PSOCKADDR, @sa ), Len( sa )) = SOCKET_ERROR ) Then
closesocket( s )
Return "Error: Couldn't connect to host"
End If
sendBuffer = "GET /" + path + " HTTP/1.0" + NEWLINE + _
"Host: " + server + NEWLINE + _
"Connection: close" + NEWLINE + _
hadd + _
NEWLINE
If( send( s, sendBuffer, Len( sendBuffer ), 0 ) = SOCKET_ERROR ) Then
closesocket( s )
Return "Error: Couldn't send request"
End If
Do
bytes = recv( s, recvBuffer, RECVBUFFLEN, 0 )
If( bytes <= 0 ) Then
Exit Do
End If
recvbuffer[bytes] = 0
If (Len(in) = 0) AndAlso (Left(recvbuffer,4) = "HTTP") AndAlso (InStr(recvbuffer,"200 OK")) Then 'nur beim ersten schleifendurchlauf prüfen
cpos = InStr(recvbuffer,"Content-Type:")
If cpos Then
ctype = Mid(recvbuffer,cpos + 14,InStr(cpos,recvbuffer,"/") - cpos - 14)
EndIf
cpos = InStr(recvbuffer,"Content-Length:")
If cpos Then
totlen = Val(Mid(recvbuffer,cpos + 16))
EndIf
headerlen = InStr(recvbuffer,Chr(13,10,13,10)) + 3
EndIf
bufstr = Space(bytes)
For x As Integer = 0 To bytes - 1
bufstr[x] = recvbuffer[x]
Next
in += bufstr
If callback Then
cb = callback
If cb(totlen, Len(in) - headerlen) Then
Exit Do 'download abbrechen
EndIf
EndIf
Loop
If ctype <> "text" Then 'header entfernen
in = Mid(in, headerlen + 1)
EndIf
shutdown( s, 2 )
closesocket( s )
Return in
End Function
Function httppost(server As String, path As String, toPost As String, hadd As String = "", callback As Any Ptr = 0) As String
Dim IP As Integer
Dim ia As in_addr
Dim s As SOCKET
Dim hostentry As hostent Ptr
Dim sendbuffer As String
Dim recvbuffer As ZString * RECVBUFFLEN+1
Dim bufstr As String
Dim bytes As Integer
Dim sa As sockaddr_in
Dim in As String
Dim As Integer totlen, cpos, headerlen
Dim As String ctype
'optionale callbackroutine zur fortschrittsanzeige
Dim cb As Function (totlen As Integer, heruntergeladen As Integer) As Integer
ia.S_addr = inet_addr( server )
If ( ia.S_addr = INADDR_NONE ) Then
hostentry = gethostbyname( server )
If ( hostentry = 0 ) Then
Return "IP couldn't be resolved!"
End If
IP = *Cast( Integer Ptr, *hostentry->h_addr_list )
Else
IP = ia.S_addr
End If
s = OpenSocket( AF_INET, SOCK_STREAM, IPPROTO_TCP )
If( s = 0 ) Then
Return "Socket couldn't be opened."
End If
sa.sin_port = htons( 80 )
sa.sin_family = AF_INET
sa.sin_addr.S_addr = ip
If ( connect( s, Cast( PSOCKADDR, @sa ), Len( sa )) = SOCKET_ERROR ) Then
closesocket( s )
Return "Couldn't connect to host"
End If
sendBuffer = "POST /" + path + " HTTP/1.0" + NEWLINE + _
"Host: " + server + NEWLINE + _
"Content-Type: application/x-www-form-urlencoded" + NEWLINE + _
"Content-Length: " + Str(Len(toPost)) + NEWLINE + _
"Connection: close" + NEWLINE + _
hadd + _
NEWLINE + _
toPost + NEWLINE
If( send( s, sendBuffer, Len( sendBuffer ), 0 ) = SOCKET_ERROR ) Then
closesocket( s )
Return "Couldn't send request"
End If
Do
bytes = recv( s, recvBuffer, RECVBUFFLEN, 0 )
If( bytes <= 0 ) Then
Exit Do
End If
recvbuffer[bytes] = 0
If (Len(in) = 0) AndAlso (Left(recvbuffer,4) = "HTTP") AndAlso (InStr(recvbuffer,"200 OK")) Then 'nur beim ersten schleifendurchlauf prüfen
cpos = InStr(recvbuffer,"Content-Type:")
If cpos Then
ctype = Mid(recvbuffer,cpos + 14,InStr(cpos,recvbuffer,"/") - cpos - 14)
EndIf
cpos = InStr(recvbuffer,"Content-Length:")
If cpos Then
totlen = Val(Mid(recvbuffer,cpos + 16))
EndIf
headerlen = InStr(recvbuffer,Chr(13,10,13,10)) + 3
EndIf
bufstr = Space(bytes)
For x As Integer = 0 To bytes - 1
bufstr[x] = recvbuffer[x]
Next
in += bufstr
If callback Then
cb = callback
If cb(totlen, Len(in) - headerlen) Then
Exit Do 'download abbrechen
EndIf
EndIf
Loop
If ctype <> "text" Then 'header entfernen
in = Mid(in, headerlen + 1)
EndIf
shutdown( s, 2 )
closesocket( s )
Return in
End Function |
Testprogramm: Code: | #Include "HTTP.bi"
Function download_callback(gesamtlaenge As Integer, heruntergeladen As Integer) As Integer
Print " gesamtlaenge ";gesamtlaenge
Print "heruntergeladen ";heruntergeladen
Print " ";Int(100 * heruntergeladen / gesamtlaenge);"% (Abbrechen mit ESC)"
If heruntergeladen < gesamtlaenge Then
Locate CsrLin -3,1,0
EndIf
If InKey = Chr(27) Then
Return 1
EndIf
Return 0
End Function
Dim As String inhalt = httpget("videos.classic-car.tv","Wellenlager_SD.mp4",,@download_callback)
'Dim As String inhalt = httppost("videos.classic-car.tv","Wellenlager_SD.mp4","",,@download_callback)
Open "test.mp4" For Output As #1
Print #1, inhalt;
Close
Print "OK"
Sleep |
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 01.07.2016, 13:28 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Übrigens, das wird spätestens dann spaßig, wenn der Website-Betreiber mal auf https umstellt. | Das wäre jetzt meine nächste Frage gewesen...
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 01.07.2016, 14:08 Titel: |
|
|
Ich fühle mich gerade wie Sokrates: "Ich weiß, daß ich nichts weiß"
Mit der Verwendung der WinAPI hätte ich kein Problem, das habe ich ja auf jeden Fall hier auf dem Rechner, und die Bindings sind im FB - Paket drin. Und bei Linux kann ich sowieso nicht mitreden.
Eigentlich besteht ja auch gar keine Notwendigkeit, da selber etwas zu schreiben. Die Subs von PMedia sind halt so schön kompakt, und ich muß keine dlls mitschleppen.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 22.07.2016, 00:30 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Oder du fragst ThePuppetMaster; der codet solche Sachen manchmal in 1...2 Nächten runter. | Daran hab ich mich in der tat schonmal versucht, ist allerdings relativ umfangreich, wenn man 1. platformunabhängigkeit gewährleisten will, und 2. das ganze halbwegs einfach realisieren möchte.
Bezüglich HTTP Download: https://www.freebasic-portal.de/porticula/test-http-getbas-802.html (Kann sowohl in eine Datei als auch in eine Variable herunter laden)
@grindstone
Deine Variante ist ansich OK, könnte allerdings einige Probleme erzeugen.
Ich führe einfach mal ein paar Punkte auf. Bitte nicht zu kritisch betrachten
* RECVBUFFLEN ist eigentlich zu groß. Diese sollte dem Paket entsprechend 7936 Byte groß sein.
* Wenn du 'HTTP/1.0' nutzt, solltest du auch in der auswertugn auf 1.0 prüfen.
* wenn du nicht "select" nutzt, dann wirkt sich die funktion blockierend aus. Das Heist, das deine App ebenfalls blockiert (Nicht Assynchron). Das kann bei schlechten verbindugnen oder "doofen" Servers dazu führen, das du extrem lange eine blockierte anwendung hast, die du nur via KILL -n 9 (linux) abtöten kannst.
* du prüft im recvbuffer auf "200 OK" via instr. Angenommen, du hast ein HTTP 206 oder ähnliches, dann wird 1. deine abfrage warscheinlich nicht erfolgreich verlaufen und / oder 2. könnte ein im Header enthaltender Text "200 OK" ebenfalls fehlerhaftes verhalten auslösen.
Du solltest hier die erste zeile mit dem crlf abtrennen, und NUR in dieser danach suchen. Das minimiert zumindest "angriffe" oder "fehlferhalten".
* das 'ctype' sollte ge'trim't werden, da nach dem : eines header-parameter auch leerzeichen zulässig sind.
* content-length sollte auch "Byte" geprüft werden.
* im POST solltest du im 'Content-Type' einen anderen typ als 'application/x-www-form-urlencoded' nutzen. AUSER, du hast auch daten, die als form-urlencoded vorliegen. Alternative wären octetstream Arten.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 23.07.2016, 11:46 Titel: |
|
|
Vielen Dank für die Hinweise, ich werde sie bei nächster Gelegenheit in meinen Code einarbeiten. Aber ich denke, auf lange Sicht werde ich wohl an TSNE nicht vorbeikommen, wenn ich eine Open Source - Lösung haben möchte (möchte ich natürlich ).
Gruß
grindstone
EDIT:
Kann ich aus der Formulierung Zitat: | Daran hab ich mich in der tat schonmal versucht | schließen, daß TSNE aktuell kein https verarbeiten kann? _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 23.07.2016, 17:00 Titel: TLS oberhalb TCP |
|
|
Hallo!
grindstone hat Folgendes geschrieben: | EDIT:
Kann ich aus der Formulierung Zitat: | Daran hab ich mich in der tat schonmal versucht | schließen, daß TSNE aktuell kein https verarbeiten kann? |
Ja. - Sonst sähe die Bibliothek vom Umfang her auch ziemlich anders aus.
TSNE hat keine Funktionen für TLS, worauf HTTPS dann im nächsten Schritt aufbauen würde.
Du könntest dir aber natürlich selber eine Crypto-Bibliothek in FB schreiben, die TLS bietet, und dann mit Hilfe von TSNE und deiner eigenen Lib HTTPS implementieren.
TSNE ermöglicht dir u.a. den einfachen Umgang mit TCP-Sockets in FreeBASIC. Darüber könnte man dann natürlich auch verschlüsselte Daten austauschen und nicht nur unverschlüsselte. TSNE stellt dir sozusagen ein Rohrpost-Rohr von einer Anwendung auf System A zur anderen auf System A oder auch B bereit. Was du durchleitest (offen lesbare Postkarten oder Briefe mit verschlüsseltem Text), ist dir selber überlassen. Wenn du etwas Verschlüsseltes durchschicken willst oder sicherstellen willst, dass am anderen Ende des Rohres der sitzt, den du da erwartest, musst du dich selber um Mechanismen dafür kümmern.
Wikipedia hat Folgendes geschrieben: | Im OSI-Modell ist TLS in Schicht 5 (der Sitzungsschicht) angeordnet. Im TCP/IP Modell ist TLS oberhalb der Transportschicht (zum Beispiel TCP) und unterhalb Anwendungsprotokollen wie HTTP oder SMTP angesiedelt. |
In dem Wikipedia-Artikel zu TLS kann man das in der Abbildung/Tabelle oben rechts gut sehen.
TSNE hilft dir auf der Transportschicht-Ebene. Die Verschlüsselung ist eine logische Ebene höher angesiedelt. Und oberhalb der Verschlüsselung kommt dann die Anwendungsebene, also HTTP, SMTP, ...
Viele Grüße!
Sebastian _________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 24.07.2016, 11:58 Titel: |
|
|
Vielen Dank, scheint ja doch etwas komplizierter zu sein.
Könnte man sich nicht -nur mal so als Idee- beispielsweise in Firefox einklinken und den die Zertifizierungs- und Entschlüsselungsarbeit machen lassen?
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|