Pan fydd CONNECT yn dychwelyd 200 ac mae TLS yn methu dadgodio ar unwaith, archwiliwch y beitiau ffin yn y cysylltydd cyn newid tystysgrifau neu seiffrau.

Efallai bod gwerth awdurdodi a gynhyrchwyd eisoes yn gorffen â llinell newydd. Gall ychwanegu diwedd llinell arall orffen penawdau HTTP yn gynnar, gan adael maes Host bwriadedig neu destun clir arall y tu ôl i'r cais.

Mae cais HTTP/1.1 CONNECT lleiaf yn defnyddio CRLF rhwng llinellau a llinell wag ar y diwedd:

b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"

Rhowch unrhyw faes awdurdodi cyn y llinell wag olaf honno, heb dorriad llinell ymgorfforedig. Yn Python, mae "\n" yn cynrychioli llinell newydd; nid yw llinyn crai sy'n cynnwys ôl-slaes a'r llythyren n yn gwneud hynny. Gwiriwch ba beitiau y mae helpwr amgodio yn eu cynhyrchu cyn ceisio eu stribedu—gallai helpwyr hŷn ychwanegu torriadau llinell.

Unwaith y bydd CONNECT yn llwyddo, mae'r beitiau sy'n weddill yn perthyn i'r protocol twnelu. Gall testun clir digyswllt gyrraedd cymar sy'n disgwyl TLS. Ni all y statws llwyddiannus drwsio beitiau sydd eisoes wedi'u ciwio ar ôl cais malformed.

Archwiliwch y ffin dderbyn hefyd. Darllenwch yr ymateb dirprwy cyflawn cyn trosglwyddo'r soced i TLS, trin darlleniadau rhannol a chadw unrhyw beth a ddarllenwyd y tu hwnt i'r penawdau. Nid oes rhaid i un darlleniad soced gynnwys un neges gyfan.

Os mai chi sy'n berchen ar y dosrannydd hwn, cymharwch gynrychiolaeth beit wedi'i golygu â gramadeg y wifren; cadwch hydoedd a ffiniau llinellau yn weladwy wrth guddio'r cyfrinair. Ar gyfer cymhwysiad sydd ond angen cysylltiad dirprwy, mae cysylltydd a gynhelir yn osgoi gorfod bod yn berchen ar y cod fframio hwn.

Erthyglau cysylltiedig