


2023 java intern job interview questions - HTTP and HTTPS protocols
Oct 30, 2020 pm 04:38 PM1. Introduction to HTTP
HTTP protocol is the abbreviation of Hyper Text Transfer Protocol. The HTTP protocol works on a client-server architecture. As an HTTP client, the browser sends all requests to the HTTP server, that is, the WEB server, through the URL. The web server sends response information to the client based on the received request.
(Video tutorial sharing: java course)
2. HTTP protocol characteristics
No connection: The meaning of no connection is to limit each connection to only Process a request. After the server processes the client's request and receives the client's response, it disconnects. This method saves transmission time.
Stateless: The HTTP protocol is a stateless protocol. Stateless means that the protocol has no memory ability for transaction processing. The lack of status means that if subsequent processing requires the previous information, it must be retransmitted, which may result in an increase in the amount of data transferred per connection. On the other hand, the server responds faster when it does not need previous information.
3. HTTP status code
1xx: Instruction information – indicates that the request has been received, continue processing
2xx: Success – indicates that the request has been successfully received, understood, and accepted
3xx: Redirect – further action is necessary to complete the request
4xx: Client Error – the request has a syntax error or the request cannot be fulfilled
5xx: Server Side Error – the server failed to fulfill a legitimate request
Common status codes:
200 OK //客戶端請(qǐng)求成功 400 Bad Request //客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解 401 Unauthorized //請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用 403 Forbidden //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù) 404 Not Found //請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL 500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤 503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常
4. How HTTP works
The HTTP protocol defines how the Web client requests a Web page from the Web server, and how the server transmits the Web page to the client . The HTTP protocol uses a request/response model. The client sends a request message to the server. The request message contains the request method, URL, protocol version, request header and request data. The server responds with a status line that includes the protocol version, success or error code, server information, response headers, and response data.
The following are the steps for HTTP request/response:
1. Client connects to the Web server
An HTTP client, usually a browser, establishes a TCP with the HTTP port of the Web server (default is 80) Socket connection. For example, http://www.baidu.con.
2. Send HTTP request
Through the TCP socket, the client sends a text request message to the Web server. A request message consists of four parts: request line, request header, blank line and request data. .
3. The server accepts the request and returns an HTTP response.
The Web server parses the request and locates the requested resource. The server writes a copy of the resource to the TCP socket, which is read by the client. A response consists of four parts: status line, response header, blank line and response data.
(Recommended related interview questions: java interview questions and answers)
4. Release the connection TCP connection
If the connection mode is close, the server actively closes TCP connection, the client passively closes the connection and releases the TCP connection; if the connection mode is keepalive, the connection will be maintained for a period of time, and requests can continue to be received during this time;
5. The client browser parses HTML content
The client browser first parses the status line for a status code indicating whether the request was successful. Then each response header is parsed, and the response header tells the following HTML document of several bytes and the character set of the document. The client browser reads the response data HTML, formats it according to the syntax of HTML, and displays it in the browser window.
For example: type the URL in the browser address bar and press Enter, you will go through the following process:
1. The browser requests the DNS server to resolve the IP address corresponding to the domain name in the URL;
2 , after parsing the IP address, establish a TCP connection with the server based on the IP address and the default port 80;
3. The browser issues an HTTP request to read the file (the file corresponding to the part after the domain name in the URL), and the request reports The text is sent to the server as the data of the third message of the TCP three-way handshake;
4. The server responds to the browser request and sends the corresponding html text to the browser;
5. Release the TCP connection;
6. The browser converts the html text and displays the content;
5. What is the difference between HTTP and HTTPS
HTTPS: It is an HTTP channel with security as the goal. Simply speaking, it is HTTP The secure version is to add the SSL layer under HTTP. The security foundation of HTTPS is SSL, so the details of encryption require SSL.
The main functions of the HTTPS protocol can be divided into two types: one is to establish an information security channel to ensure the security of data transmission; the other is to confirm the authenticity of the website.
The main differences between HTTPS and HTTP are as follows:
1. The https protocol requires applying for a certificate from ca. Generally, there are fewer free certificates, so a certain fee is required.
2. http is a hypertext transfer protocol, and information is transmitted in plain text, while https is a secure SSL encrypted transmission protocol.
3. http and https use completely different connection methods and use different ports. The former is 80 and the latter is 443.
4. The http connection is very simple and stateless; the HTTPS protocol is a network protocol built from the SSL HTTP protocol that can perform encrypted transmission and identity authentication, and is more secure than the http protocol.
6. How is the security of HTTPS implemented?
(1) The customer uses the https URL to access the Web server and requires an SSL connection to be established with the Web server.
(2) After receiving the client's request, the web server will transmit a copy of the website's certificate information (the certificate contains the public key) to the client.
(3) The client's browser and the Web server begin to negotiate the security level of the SSL connection, which is the level of information encryption.
(4) The client's browser establishes a session key based on the security level agreed by both parties, then uses the website's public key to encrypt the session key and transmits it to the website.
(5) The web server uses its own private key to decrypt the session key.
(6) The web server uses the session key to encrypt the communication with the client.
Related recommendations: Getting Started with Java
The above is the detailed content of 2023 java intern job interview questions - HTTP and HTTPS protocols. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three common methods to traverse Map in Java: 1. Use entrySet to obtain keys and values at the same time, which is suitable for most scenarios; 2. Use keySet or values to traverse keys or values respectively; 3. Use Java8's forEach to simplify the code structure. entrySet returns a Set set containing all key-value pairs, and each loop gets the Map.Entry object, suitable for frequent access to keys and values; if only keys or values are required, you can call keySet() or values() respectively, or you can get the value through map.get(key) when traversing the keys; Java 8 can use forEach((key,value)->

Optional can clearly express intentions and reduce code noise for null judgments. 1. Optional.ofNullable is a common way to deal with null objects. For example, when taking values ??from maps, orElse can be used to provide default values, so that the logic is clearer and concise; 2. Use chain calls maps to achieve nested values ??to safely avoid NPE, and automatically terminate if any link is null and return the default value; 3. Filter can be used for conditional filtering, and subsequent operations will continue to be performed only if the conditions are met, otherwise it will jump directly to orElse, which is suitable for lightweight business judgment; 4. It is not recommended to overuse Optional, such as basic types or simple logic, which will increase complexity, and some scenarios will directly return to nu.

The core workaround for encountering java.io.NotSerializableException is to ensure that all classes that need to be serialized implement the Serializable interface and check the serialization support of nested objects. 1. Add implementsSerializable to the main class; 2. Ensure that the corresponding classes of custom fields in the class also implement Serializable; 3. Use transient to mark fields that do not need to be serialized; 4. Check the non-serialized types in collections or nested objects; 5. Check which class does not implement the interface; 6. Consider replacement design for classes that cannot be modified, such as saving key data or using serializable intermediate structures; 7. Consider modifying

In Java, Comparable is used to define default sorting rules internally, and Comparator is used to define multiple sorting logic externally. 1.Comparable is an interface implemented by the class itself. It defines the natural order by rewriting the compareTo() method. It is suitable for classes with fixed and most commonly used sorting methods, such as String or Integer. 2. Comparator is an externally defined functional interface, implemented through the compare() method, suitable for situations where multiple sorting methods are required for the same class, the class source code cannot be modified, or the sorting logic is often changed. The difference between the two is that Comparable can only define a sorting logic and needs to modify the class itself, while Compar

There are three common ways to parse JSON in Java: use Jackson, Gson, or org.json. 1. Jackson is suitable for most projects, with good performance and comprehensive functions, and supports conversion and annotation mapping between objects and JSON strings; 2. Gson is more suitable for Android projects or lightweight needs, and is simple to use but slightly inferior in handling complex structures and high-performance scenarios; 3.org.json is suitable for simple tasks or small scripts, and is not recommended for large projects because of its lack of flexibility and type safety. The choice should be decided based on actual needs.

Method reference is a way to simplify the writing of Lambda expressions in Java, making the code more concise. It is not a new syntax, but a shortcut to Lambda expressions introduced by Java 8, suitable for the context of functional interfaces. The core is to use existing methods directly as implementations of functional interfaces. For example, System.out::println is equivalent to s->System.out.println(s). There are four main forms of method reference: 1. Static method reference (ClassName::staticMethodName); 2. Instance method reference (binding to a specific object, instance::methodName); 3.

To deal with character encoding problems in Java, the key is to clearly specify the encoding used at each step. 1. Always specify encoding when reading and writing text, use InputStreamReader and OutputStreamWriter and pass in an explicit character set to avoid relying on system default encoding. 2. Make sure both ends are consistent when processing strings on the network boundary, set the correct Content-Type header and explicitly specify the encoding with the library. 3. Use String.getBytes() and newString(byte[]) with caution, and always manually specify StandardCharsets.UTF_8 to avoid data corruption caused by platform differences. In short, by

How to quickly create new emails in Outlook is as follows: 1. The desktop version uses the shortcut key Ctrl Shift M to directly pop up a new email window; 2. The web version can create new emails in one-click by creating a bookmark containing JavaScript (such as javascript:document.querySelector("divrole='button'").click()); 3. Use browser plug-ins (such as Vimium, CrxMouseGestures) to trigger the "New Mail" button; 4. Windows users can also select "New Mail" by right-clicking the Outlook icon of the taskbar
