HTTP协议实例详解
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务模型。HTTP通常承载于TCP协议之上,有时候也承载于TLS或SSL协议层之上,这个时候,就成了常说的HTTPS。默认HTTP的端口号为80,HTTPS的端口号为443。
缺点是服务端不会主动的向客户端PUSH
SPDY协议的应用需要客户端浏览器和服务器端同时支持。优化了浏览器和服务器之间的通信,支持流复用,具备优先级的请求,主动发起请求,强制SSL安全传输等先进的特性
4.1.2 HTTP协议如何工作
浏览网页是HTTP协议的主要应用,一次HTTP操作称为一个事务
1 客户机于服务器需要建立连接,单击某个超链接,HTTP协议的工作开始。
2 建立连接后,客户机发送一个请求给服务器。
3 服务器接收到请求后,给予相应的响应信息
4 客户端接收服务器返回的信息并显示在用户的显示屏上,然后客户机与服务器断开连接
HTTP协议中的一些主要概念
1 请求
HTTP请求由三部分组成:请求头,请求报头,请求正文
请求行:Method Request-URL HTTP-Version CRLF
Method :请求方法(GET,POST,HEAD,PUT,DELETE,TRACE,CONNECT,OPTIONS)
Request URL:一个统一资源标识符
HTTP Version:请求的HTTP协议版本
CRLF:回车和换行
2 响应
HTTP响应也由三个部分组成:分别是状态行,消息报头,响应正文
状态行:HTTP-Version Status-Code Reason-Phrase CRLF
HTTP Version:服务器HTTP协议的版本
Status-Code:服务器发回的响应状态代码
Reason Phrase:状态代码的文本描述
状态代码有三位数字组成,五种可能取值
1XX:指示信息--请求已接收,继续处理
2XX:成功--请求已被成功接收,理解和接受
3XX:重定向--要完成请求必须进行更进一步的操作
4XX:客户端错误--请求有语法错误或请求无法实现
5XX:服务器错误--服务器未能实现合法的请求
常见额状态代码及状态描述
200 OK:客户端请求成功
400 bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorize:请求未经授权,这个状态代码必须和WWW Authenticate报头一起使用
403 Forbidden:服务器收到请求,但是拒绝提供服务
404 Not found:请求的资源不存在,例如输入了错误的URL
500 internal Server Error:服务器发生不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
3 报头
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头
1 普通报头中有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息(缓存控制、连接控制)
2 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息(UA头,Accept)
3 响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request URL所标识的资源进行下一步访问的信息(Location)
4 实体报头定义了关于实体正文和请求所标识的资源的元信息,例如有无实体正文
几个比较重要的报头:
Host:头域指定请求资源的Internet主机和端口号,必须表示请求URL的原始服务器或网关的位置。
User Agent:简称UA,内容包含发出请求的用户信息。通常包含浏览者的信息,主要是浏览器的名称版本和所用的操作系统
Accept:告诉服务器可以接受的文件格式。通常这个值在各种浏览器中都差不多。
Cookie:分两种:一种是客户端想服务器发送的使用Cookie报头,可以有多个值,另一种是服务器发送给浏览器的,报头为Set Cookie,只能有一个值,需要指明domain,path
Cache Control:指定请求和响应遵循的缓存机制。在请求消息或响应消息设置Cache Control并不会修改另一个消息过程中的缓存处理过程。请求时缓存指令包括 no cache,no store,max age,max state,no transform,must revalidate,proxy revalidate,max age
Referer:头域允许客户端指定请求URL的源资源地址,这可以允许服务器生成回退链表,用来登录,优化缓存,Referer通常是流量统计系统用来记录来访者地址的参数
Content Length:内容长度
Content Range:响应的资源范围。可以在每次请求中标记请求的资源范围,在连接断开重连时,客户端只请求该资源未下载的部分,而不是重新请求整个资源,实现断点续传。迅雷就是这个原理,使用多线程分段读取网络傻姑娘的资源,最后再合并
Accept Encoding:指定能接收的编码方式
自定义报头:在http消息中,也可以使用一些在http1.1中正式规范里没有定义的头字段。
相关推荐:
Atas ialah kandungan terperinci HTTP协议实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Sistem pengendalian Windows ialah salah satu sistem pengendalian yang paling popular di dunia, dan versi baharunya Win11 telah menarik perhatian ramai. Dalam sistem Win11, mendapatkan hak pentadbir adalah operasi penting Hak pentadbir membolehkan pengguna melakukan lebih banyak operasi dan tetapan pada sistem. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kebenaran pentadbir dalam sistem Win11 dan cara mengurus kebenaran dengan berkesan. Dalam sistem Win11, hak pentadbir dibahagikan kepada dua jenis: pentadbir tempatan dan pentadbir domain. Pentadbir tempatan mempunyai hak pentadbiran penuh ke atas komputer tempatan

Penjelasan terperinci tentang operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi ialah operasi matematik yang biasa dan penting, digunakan untuk mengira hasil pembahagian dua nombor. Bahagian sering digunakan dalam pertanyaan pangkalan data, jadi memahami operasi bahagian dan penggunaannya dalam OracleSQL adalah salah satu kemahiran penting untuk pembangun pangkalan data. Artikel ini akan membincangkan pengetahuan berkaitan operasi bahagian dalam OracleSQL secara terperinci dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. Operasi bahagian dalam OracleSQL

Operator modulo (%) dalam PHP digunakan untuk mendapatkan baki pembahagian dua nombor. Dalam artikel ini, kami akan membincangkan peranan dan penggunaan pengendali modulo secara terperinci, dan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Peranan pengendali modulo Dalam matematik, apabila kita membahagi integer dengan integer lain, kita mendapat hasil bagi dan baki. Sebagai contoh, apabila kita membahagi 10 dengan 3, hasil bahagi ialah 3 dan selebihnya ialah 1. Operator modulo digunakan untuk mendapatkan baki ini. 2. Penggunaan operator modulo Dalam PHP, gunakan simbol % untuk mewakili modulus

Penjelasan terperinci tentang fungsi sistem panggilan sistem Linux() Panggilan sistem ialah bahagian yang sangat penting dalam sistem pengendalian Linux Ia menyediakan cara untuk berinteraksi dengan kernel sistem. Antaranya, fungsi system() adalah salah satu fungsi panggilan sistem yang biasa digunakan. Artikel ini akan memperkenalkan penggunaan fungsi system() secara terperinci dan memberikan contoh kod yang sepadan. Konsep Asas Panggilan Sistem Panggilan sistem ialah satu cara untuk atur cara pengguna berinteraksi dengan kernel sistem pengendalian. Program pengguna meminta sistem pengendalian dengan memanggil fungsi panggilan sistem

Penjelasan terperinci tentang perintah curl Linux Ringkasan: curl ialah alat baris arahan yang berkuasa yang digunakan untuk komunikasi data dengan pelayan. Artikel ini akan memperkenalkan penggunaan asas perintah curl dan memberikan contoh kod sebenar untuk membantu pembaca memahami dan menggunakan arahan dengan lebih baik. 1. Apakah curl? curl ialah alat baris arahan yang digunakan untuk menghantar dan menerima pelbagai permintaan rangkaian. Ia menyokong berbilang protokol, seperti HTTP, FTP, TELNET, dll., dan menyediakan fungsi yang kaya, seperti muat naik fail, muat turun fail, penghantaran data, proksi

Bagaimana untuk melaksanakan penstriman HTTP dalam C++? Cipta soket strim SSL menggunakan Boost.Asio dan pustaka klien asiohttps. Sambung ke pelayan dan hantar permintaan HTTP. Terima pengepala respons HTTP dan cetaknya. Menerima badan respons HTTP dan mencetaknya.

Penjelasan terperinci tentang algoritma rekursif C#, contoh kod khusus diperlukan 1. Apakah algoritma rekursif? Rekursi ialah apabila fungsi atau kaedah memanggil dirinya sendiri semasa pelaksanaan. Algoritma rekursif ialah kaedah penyelesaian masalah biasa dalam pengaturcaraan. Ia menguraikan masalah kepada satu atau lebih sub-masalah yang serupa dengan masalah asal tetapi saiznya lebih kecil, dan kemudian menyelesaikan masalah asal dengan menyelesaikan sub-masalah ini. Algoritma rekursif sering digunakan untuk menyelesaikan masalah berulang. 2. Cara melaksanakan algoritma rekursif Dalam C#, terdapat dua cara utama untuk melaksanakan algoritma rekursif: rekursif langsung dan rekursif tidak langsung. lurus

Melaksanakan keselamatan muat naik fail HTTP di Golang memerlukan langkah berikut: Sahkan jenis fail. Hadkan saiz fail. Kesan virus dan perisian hasad. Simpan fail dengan selamat.
