0%

httpnote

attach一段对http的科学解释:

HTTP(Hypertext Transfer Protocol)是一种用于在计算机之间传输超文本(Hypertext)文档的应用层协议。它是构建在TCP(Transmission Control Protocol)之上的协议,用于实现在Web上的数据传输。HTTP是Web的基础,它定义了客户端和服务器之间的通信规则,使我们能够在浏览器中浏览网页、发送和接收数据等。

主要定义的事情就是:
client–>(user agent用户代理/proxy代理)发送请求–>server
client<–(user agent用户代理/proxy代理)发送请求<–server

基本介绍

user agent

浏览器通常作为发送请求的实体,发送最初请求获取页面的 HTML 文档。解析文档,并发送其他请求,获取响应的可执行脚本、布局信息(CSS)以及其他页面内的资源(一般是图片和视频等)。浏览器将这些资源整合到一起,展现出一个完整的文档,即 Web 页面。之后的阶段,浏览器中执行的脚本可以获取更多资源,同时浏览器相应地更新网页。

web server

服务端(可以是多台机器,共享负载的一组服务器集群(负载均衡)或是其他类型的软件(如缓存、数据库服务、电商服务等))为客户端提供所需文档

proxy

应用层参与消息传递

HTTP和网络连接

HTTP/1.0 默认为每一对HTTP请求/响应都打开一个单独的 TCP 连接

request请求

GET(method) /(path) HTTP/1.1(protocol version)	    
Host: developer.mozilla.org	   	
Accept-Language: zh  (headers标头) ``` 

method:定义客户端执行的动作
path:去除部分信息(https://;域名;端口)

response响应

HTTP/1.1(protocol version)  200(status code) OK(status message)   
Date: Sat, 09 Oct 2010 14:28:02 GMT  
Server: Apache   
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT  
ETag: "51142bc1-7449-479b075b2891b"   
Accept-Ranges: bytes   
Content-Length: 29769    
Content-Type: text/html(headers)

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据.

服务器使用 Set-Cookie 响应头部向用户代理(一般是浏览器)发送 Cookie 信息。

Set-Cookie: <cookie-name>=<cookie-value>

服务器发送标头告知客户端存储一对 cookie:

HTTP/1.0 200 OK  
Content-type: text/html   
Set-Cookie: yummy_cookie=choco     
Set-Cookie: tasty_cookie=strawberry       

现在,对该服务器发起的每一次新请求,浏览器都会将之前保存的 Cookie 信息通过 Cookie 请求头部再发送给服务器:

GET /sample_page.html HTTP/1.1   
Host: www.example.org   
Cookie: yummy_cookie=choco; tasty_cookie=strawberry   

METHOD

GET

HTTP GET 方法请求指定资源的表示。使用 GET 的请求应该只用于请求数据,而不应该包含数据。

GET /index.html    

query string:

?key1=value1&key2=value2&key3=value3

POST

HTTP POST 方法发送数据给服务器。请求主体的类型由 Content-Type 标头指定。(非幂等)

POST /test HTTP/1.1     
Host: foo.example     
Content-Type: application/x-www-form-urlencoded      
Content-Length: 27  

field1=value1&field2=value2

HEADER

Content-Type

实体头部用于指示资源的 MIME 类型 media type 。

application/x-www-form-urlencoded :
query string键值对的结构,键值对之间使用 & 分割,键与值之间使用 = 分割

multipart/form-data :
这是 form 表单提交的数据格式(需要在 from 标签上加上 enctyped="multipart/form-data"),通常用于 HTML 提交图片或者文件

application/json:
此时 body 数据为 json 格式,json 格式就是源自 js 的对象的格式。用一个 { } 括住,里面有多个键值对,键值对之间使用逗号分割,键和值之间使用冒号分割

Host

请求头指明了请求将要发送到的服务器主机名和端口号。

Host: <host>:<port>

Origin

请求标头 Origin 表示了请求的来源(协议、主机、端口)。

Origin: null   
Origin: <scheme>://<hostname>   
Origin: <scheme>://<hostname>:<port>   

Referer

Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的

Referer: <url>

User-Agent

User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号

User-Agent: <product> / <product-version> <comment>   

X-Forwarded-For

X-Forwarded-For(XFF)请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。

X-Forwarded-For: <client>, <proxy1>, <proxy2>

有题目里用Client-Ip

有待补充…

-------------已经到底啦谢谢阅读-------------