1、http请求的方法有:GET、HEAD、POST、DELETE、PUT、OPTIONS、TRACE…;前五种方法较为常用。

GET
请求获取一个资源;而需要服务器发送
HEAD
请求一个资源,但是不需要服务器发送资源而仅传回响应的首部信息
POST
提交表单;支持HTML表单提交;表单中有用户填入的数据;这些数据会发送到服务器端;由服务器存储至某位置
PUT
向服务器写入文档;例如发布系统
DELETE
请求删除URL指向的资源
OPTIONS
探测服务器端对某资源所支持的请求方法
TRACE
跟踪请求资源传输所经过防火墙、代理或网关等
CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
扩展方法
LOCK、MKCOL、COPY、MOVE…
http响应中的status状态码分为五种:

1xx:信息性状态码

2xx:成功状态码

200:OK

201:created

3xx:重定向状态码

301:Moved Permanentl;在响应报文中使用首部"Location:URL";指定资源现在所在的位置

302:Fonud(临时重定向);在响应报文中使用首部"Location:URL";指定临时资源位置

304:Not Modified(可以使用缓存);告诉客户端没有更改资源;条件式请求中使用

4xx:客户端错误信息

403:Forbidden;请求被服务器拒绝
404:Not Found;服务器无法找到请求的URL
405:Method Not Allowed;不允许使用此方法请求相应的URL

5xx:服务器端错误信息

500:Internal Server Error;服务器内部错误
502:Bad Gateway;代理服务器从上级收到了一条伪响应
503:Service Unavailable;服务器此时无法提供服务;但是将来可能可用

web服务的输入/输出结构:

1、单线程I/O结构:单个线程响应单个请求

2、多线程I/O结构:多个线程响应各对应的请求

3、复用的I/O结构:单个线程响应多个请求

4、复用的多线程I/O结构:多个线程;单个线程响应多个请求

2、请求和响应常见通用Header

Content-Type
请求体/响应体的类型,如:text/plain、application/json

Accept
说明接收的类型,可以多个值,用,(半角逗号)分开

Content-Length
请求体/响应体的长度,单位字节

Content-Encoding
请求体/响应体的编码格式,如gzip,deflate

Accept-Encoding
告知对方我方接受的Content-Encoding

ETag
给当前资源的标识,和Last-Modified、If-None-Match、If-Modified-Since配合,用于缓存控制

Cache-Control
取值为一般为no-cache或max-age=XX,XX为个整数,表示该资源缓存有效期(秒)

3、常见请求Header

Authorization
用于设置身份认证信息

User-Agent
用户标识,如:OS和浏览器的类型和版本

If-Modified-Since
值为上一次服务器返回的 Last-Modified 值,用于确认某个资源是否被更改过,没有更改过(304)就从缓存中读取

If-None-Match
值为上一次服务器返回的 ETag 值,一般会和If-Modified-Since一起出现

Cookie
已有的Cookie

Referer
表示请求引用自哪个地址,比如你从页面A跳转到页面B时,值为页面A的地址

Host
请求的主机和端口号

4、 常见响应Header

Date
服务器的日期

Last-Modified
该资源最后被修改时间

Transfer-Encoding
取值为一般为chunked,出现在Content-Length不能确定的情况下,表示服务器不知道响应版体的数据大小,一般同时还会出现Content-Encoding响应头

Set-Cookie
设置Cookie

Location
重定向到另一个URL,如输入浏览器就输入baidu.com回车,会自动跳到 https://www.baidu.com ,就是通过这个响应头控制的

Server
后台服务器

07-12 13:27